﻿using BLevy.Negocio;
using Microsoft.Reporting.WinForms;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BLevy.UI
{
    public partial class frmServiciosPorSocioReporte : Form
    {
        private bool completo;
        private string nro_certificado;
        private DateTime? fec_desde;
        private DateTime? fec_hasta;
        public frmServiciosPorSocioReporte(bool _completo, string _certificado, DateTime? desde, DateTime? hasta)
        {
            InitializeComponent();

            completo = _completo;
            nro_certificado = _certificado;
            fec_desde = desde;
            fec_hasta = hasta;
        }

        private void frmServiciosPorSocioReporte_Load(object sender, EventArgs e)
        {
            string nro_servicio = null;

            try
            {
                if (completo == true)
                {
                    var query = (from fila in Servicios.FindAllSolicitudesConSocioServicio()
                                 select new
                                 {
                                     ID = fila.socio_id,
                                     NOMBRES = fila.socio.nombres,
                                     APELLIDO = fila.socio.apellido,
                                     NUMERO_CERTIFICADO = fila.socio.numero_certificado,
                                     SERVICIO = fila.servicio.servicio,
                                     FECHA = fila.fecha,
                                     BENEFICIARIO = fila.beneficiario,
                                     OBSERVACIONES = fila.observaciones,
                                     NRO_SERVICIO = String.Format("{0:000}", fila.id)

                                 }).ToList();

                    ReportDataSource rds = new ReportDataSource();
                    rds = new ReportDataSource("DataSet1", query);

                    this.reportViewer1.LocalReport.ReportEmbeddedResource = "BLevy.UI.Reportes.ServiciosPorSocioReporte.rdlc";

                    this.reportViewer1.LocalReport.DataSources.Add(rds);
                    this.reportViewer1.ZoomMode = Microsoft.Reporting.WinForms.ZoomMode.PageWidth;
                    this.reportViewer1.RefreshReport();
                }
                else
                {
                    var query = (from fila in Servicios.FindAllCondicional(nro_servicio, nro_certificado, fec_desde, fec_hasta)
                                 select new
                                 {
                                     ID = fila.socio_id,
                                     NOMBRES = fila.socio.nombres,
                                     APELLIDO = fila.socio.apellido,
                                     NUMERO_CERTIFICADO = fila.socio.numero_certificado,
                                     SERVICIO = fila.servicio.servicio,
                                     FECHA = fila.fecha,
                                     BENEFICIARIO = fila.beneficiario,
                                     OBSERVACIONES = fila.observaciones,
                                     NRO_SERVICIO = String.Format("{0:000}", fila.id)

                                 }).ToList();

                    ReportDataSource rds = new ReportDataSource();
                    rds = new ReportDataSource("DataSet1", query);

                    this.reportViewer1.LocalReport.ReportEmbeddedResource = "BLevy.UI.Reportes.ServiciosPorSocioReporte.rdlc";

                    this.reportViewer1.LocalReport.DataSources.Add(rds);
                    this.reportViewer1.ZoomMode = Microsoft.Reporting.WinForms.ZoomMode.PageWidth;
                    this.reportViewer1.RefreshReport();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
    }
}
